#include <iostream>
#include <vector>

// 冒泡排序,升序
void BubbleSort(std::vector<int> &array)
{
    int size = array.size();
    for (int i = 0; i < size - 1; i++)
    {
        bool swapped = false; // 用于检测是否交换
        for (int j = 0; j < size - 1 - i; j++)
        {
            if (array[j] > array[j + 1])
            {
                std::swap(array[j], array[j + 1]);
                swapped = true;
            }
        }
        if (!swapped) // 若没有发生交换,说明已排序,提前结束
            break;
    }
}

// 打印 vector 中的元素
void printVector(const std::vector<int> &array)
{
    for (auto &e : array)
    {
        std::cout << e << " ";
    }
    std::cout << std::endl;
}
int main()
{
    std::vector<int> array = {64, 34, 25, 12, 22, 11, 90};
    
    std::cout << "排序前:\n";
    printVector(array);

    BubbleSort(array);

    std::cout << "排序后:\n";
    printVector(array);
    return 0;
}
